Skip to content

perf: whole-file resolution for batch UPDATE fastPatch reads - #374

Merged
MPCoreDeveloper merged 1 commit into
masterfrom
perf/update-wholefile
Sep 4, 2026
Merged

perf: whole-file resolution for batch UPDATE fastPatch reads#374
MPCoreDeveloper merged 1 commit into
masterfrom
perf/update-wholefile

Conversation

@MPCoreDeveloper

Copy link
Copy Markdown
Owner

Wat\nUpdateMultiple laadt het hele plaintext legacy variabele-lengte .dat een keer (<=32MB) en bedient de fastPatch raw-row reads vanuit die snapshot (1 slice-copy per rij) i.p.v. een pread-paar per rij. Posities met een in-batch buffered overwrite worden via de nieuwe IStorage.HasBufferedOverwriteAt gedetecteerd en vallen altijd terug op de per-record read (die de write-behind buffer eert).\n\n## Meting (Release, UPDATE 10K van ~100K rijen; median van 3)\nSQL ~35K -> ~47K ops/s; Direct ~49K -> ~66K ops/s.\n\n## Validatie\nFull suite (Debug) + Release/CI-filter op alle vier de suites: EXIT=0.

UpdateMultiple loads the whole plaintext legacy variable-length file once (<=32MB) and serves the fastPatch raw-row reads from that snapshot (one slice copy per row) instead of a pread pair per updated row. Positions that already carry a buffered in-place overwrite in this transaction are detected via the new IStorage.HasBufferedOverwriteAt and always fall back to the per-record read (which honors the write-behind buffer), so in-batch repeated updates stay correct.

Measured (Release, comparative UPDATE 10K of ~100K rows, median of 3): SQL ~35K -> ~47K ops/s, Direct ~49K -> ~66K ops/s.
@sonarqubecloud

sonarqubecloud Bot commented Sep 4, 2026

Copy link
Copy Markdown

@MPCoreDeveloper
MPCoreDeveloper merged commit 0a9b9fc into master Sep 4, 2026
13 checks passed
@MPCoreDeveloper
MPCoreDeveloper deleted the perf/update-wholefile branch September 4, 2026 05:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant